#ifndef __GAME_H__
#define __GAME_H__

struct Position{
	float x;
	float y;
};


enum Direction{
	NORTH,
	SOUTH,
	EAST,
	WEST,
	OTHER
};

enum modeFantome{
	MODEF_NORMAL,
	MODEF_MANGE
};

struct Fantome{
	float couleur[3];
	Position pos;
	Direction direction;
	modeFantome mode;
	Position oldPos;
	int wait;
};

enum modeJoueur{
	MODEJ_NORMAL,
	MODEJ_SUPERPACMAN
};

struct Joueur{
	int nbVie;
	Position pos;
	Direction direction;
	int score;
	modeJoueur mode;
	int timer;
};

class Game {
public:
	Game(char *fichier,int nbFantome);
	void afficheGrille(void);
	Grille* getGrille(void);
	void play(void);
	void setDirectionJoueur(Direction d);
	Joueur getJoueur(void);
	Fantome getFantome(int no);
	int getNbFantome();
	~Game(void);
	bool getLose(void);
	void start(void);
	bool isBegin(void);
	void refresh(void);

private:
	int nbFantome;
	Fantome *fantomes;
	Joueur joueur;
	Grille *grille;
	int getResMove(Direction direction, Position pos);
	int getTx(Direction direction);
	int getTy(Direction direction);
	bool lose;
	bool begin;
	void init(void);
	Position positionInitialFantome;
	Position positionInitialPacman;
};


#endif
